#include<iostream>
#include<cstring>
using namespace std;


class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        //解题方法为滑动窗口
        int n = s.size();
        int left = 0;
        int right = 0;
        int set[128];//储存滑动窗口内的元素个数
        memset(set,0,sizeof(set));
        int ret = 0;
        while(right<n)
        {
            //进窗口
            if(set[s[right]]==0)
            {
                set[s[right]]++;
                //更新答案
                ret = std::max(ret,right-left+1);
                right++;
                continue;
            }
            //出窗口
            while(set[s[right]]!=0)
            {
                set[s[left]] = 0;
                left++;
            }
        }
        return ret;
    }
};